﻿using System.Collections.Generic;
using Szabalyrendszer.Modositok;
using System.Linq;
using System;

namespace Szabalyrendszer
{
    public class PotencialisSebzes
    {
        public PotencialisSebzes()
        {
            Bonuszok = new List<SebzesBonusz>();
            SebzesTipus = SebzesTipus.Fegyver;
            SfeErvenyesul = true;
        }

        private int nAlap;
        private int kAlap;
        private int pluszAlap;

        public SebzesTipus SebzesTipus { get; set; }
        public bool SfeErvenyesul { get; set; }
        public int N
        {
            get { return nAlap + Bonuszok.Sum(b => b.N); }
            set { nAlap = value; }
        }
        public int K { get; set; }
        public int Plusz
        {
            get { return pluszAlap + Bonuszok.Sum(b => b.Plusz); }
            set { pluszAlap = value; }
        }
        public List<SebzesBonusz> Bonuszok { get; set; }

        public static PotencialisSebzes operator +(PotencialisSebzes a, PotencialisSebzes b)
        {
            return new PotencialisSebzes
            {
                N = a.N + b.N,
                K = Math.Max(a.K, b.K),
                Plusz = a.Plusz + b.Plusz
            };
        }
    }
}
